<?php

if (!function_exists('json_to_array')) {
    function json_to_array($json)
    {
        $res = json_decode($json);
        if (json_last_error() !== JSON_ERROR_NONE ||
            !is_array($res)
        ) {
            $res = [];
        }

        return $res;
    }
}

if (!function_exists('space_blank_to_html')) {
    /**
     * 把空格转成&nbsp;
     * 把换行转成<br>
     *
     * @param $str
     *
     * @return string
     */
    function space_blank_to_html($str)
    {
        return nl2br(str_replace(' ', '&nbsp;', $str));
    }
}

if (!function_exists('missing')) {
    /**
     * 如果是$value是MissingValue,则在其后面调用任何东西都会返回MissingOrNot对象
     *
     * 否则可以在$value后面链式调用$value的方法或属性
     *
     * @param mixed $value
     *
     * @return \App\Utils\MissingOrNot
     */
    function missing($value)
    {
        return new \App\Utils\MissingOrNot($value);
    }
}

if (!function_exists('wechat_oauth_url')) {
    function wechat_oauth_url($redirect_uri)
    {
        return rtrim(config('admin.wechat_oauth_domain'), '/').'/get-weixin-code.html'
            .'?'
            .http_build_query([
                'appid'        => config('admin.official_account_app_id'),
                'scope'        => 'snsapi_userinfo',
                'redirect_uri' => $redirect_uri,
            ]);
    }
}